package main

import (
	"fmt"
	"log"
	"net"
)

func main() {
	listener, err := net.Listen("tcp", ":2000")
	if err != nil {
		log.Fatalln("服务器启动失败", err)
		return
	}
	for {
		conn, err := listener.Accept()
		if err != nil {
			fmt.Println("获取客户端失败", err)
			continue
		}
		go process(conn)
	}
}

func process(conn net.Conn) {
	defer conn.Close()
	for {
		b := make([]byte, 1024)
		n, err := conn.Read(b)
		if err != nil {
			fmt.Println("读取客户端数据失败", err)
			return
		}
		str := string(b[:n])
		fmt.Printf("从客户的收到的消息为:%s,长度为:%d \n", str, n)
		_, err = conn.Write(b[0:n])
		if err != nil {
			fmt.Println("写回客户端失败", err)
			return
		}
		if str == "bye" {
			return
		}
	}
}
